package edu.upc.clase.demo.dao.impl;

import edu.upc.clase.demo.dao.UbigeoDao;
import edu.upc.clase.demo.entity.Ubigeo;
import java.util.List;
import javax.sql.DataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
import org.springframework.stereotype.Repository;

/**
 *
 * SIX-GROUP-UPC
 */
@Repository
public class UbigeoDaoImpl extends SimpleJdbcDaoSupport implements UbigeoDao {
    
        
    private static Logger log = LoggerFactory.getLogger(UbigeoDaoImpl.class);
    
    @Autowired
    public UbigeoDaoImpl(DataSource dataSource) {
            log.info("Asignando el dataSource");
            setDataSource(dataSource);
    }
    
//    @Override
//    public Integer insertar(Usuario usuario) {
//        
//        getJdbcTemplate().update(
//                "insert into usuarios (nombre,correo,password) values (?, ?, ?)",
//                usuario.getNombre(),usuario.getCorreo(),usuario.getPassword());
//        return getSimpleJdbcTemplate().queryForInt("call identity()");
//    }
//    
//    @Override
//    public void actualizar(Usuario usuario) {        
//        getJdbcTemplate().update(
//                "update usuarios set nombre = ?, correo = ? where id = ?",
//                usuario.getNombre(),usuario.getCorreo(),usuario.getId());        
//    }
//    
//    @Override
//    public void eliminar(Usuario usuario) {
//        getJdbcTemplate().update(
//                "delete from usuarios where id = ?",usuario.getId());        
//    }
//
//    @Override
//    public Usuario buscar(Integer id) {
//        try {
//                return getSimpleJdbcTemplate().queryForObject(
//                                "select id, nombre, correo,password from usuarios where id=?",
//                                new BeanPropertyRowMapper<Usuario>(Usuario.class), id);
//        } catch (EmptyResultDataAccessException e) {
//                return null;
//        }        
//    }

    @Override
    public List<Ubigeo> buscarTodos() {
        return getSimpleJdbcTemplate().query(
                        "select CodigoUbigeo,CodigoDistrito,CodigoProvincia,CodigoDepartamento,DescripcionUbigeo from ubigeos",
                        new BeanPropertyRowMapper<Ubigeo>(Ubigeo.class));
    }

//    @Override
//    public Usuario buscar(String correo) {
//        try {
//                return getSimpleJdbcTemplate().queryForObject(
//                                "select id, nombre, correo,password from usuarios where correo=?",
//                                new BeanPropertyRowMapper<Usuario>(Usuario.class), correo);
//        } catch (EmptyResultDataAccessException e) {
//                return null;
//        }           
//    }

   
}